from haystack import indexes
from .models import DoctorModel


class DoctorIndex(indexes.SearchIndex, indexes.Indexable):
    # 全文索引[可以根据配置，可以包括多个字段索引]
    # document=True 表示当前字段为全文索引
    # use_template=True 表示接下来haystack需要加载一个固定路径的html模板文件，让text与其他索引字段绑定映射关系
    text = indexes.CharField(document=True, use_template=True)
    # 普通索引[单字段，只能提供单个字段值的搜索，所以此处的声明更主要是为了提供给上面的text全文索引使用的]
    # es索引名 = indexes.索引数据类型(model_attr="ORM中的字段名")
    name = indexes.CharField(model_attr="name")
    avatar = indexes.CharField(model_attr="avatar_display")
    department = indexes.CharField(model_attr="department__name")
    hospital = indexes.CharField(model_attr="hospital__name")
    title = indexes.CharField(model_attr="title__name")
    description = indexes.CharField(model_attr="description")
    intro = indexes.CharField(model_attr="intro")
    rate = indexes.CharField(model_attr="rate")
    price = indexes.CharField(model_attr="price")
    reply = indexes.CharField(model_attr="reply")
    reply_time = indexes.CharField(model_attr="reply_time")
    goodat = indexes.CharField(model_attr="get_goodat")
    label = indexes.CharField(model_attr="get_label")

    def get_model(self):
        return DoctorModel

    def index_queryset(self, using=None):
        return self.get_model().objects.all()



